Cadastrar eventos/compromissos no Google Agenda com cURL [PHP]

Publicado por Renan Martins Pimentel em 16/12/2011

[ Hits: 20.592 ]

Blog: http://www.renanmpimentel.com.br

 


Cadastrar eventos/compromissos no Google Agenda com cURL [PHP]



Bom, hoje vou falar sobre o Google Agenda. Acho que muitas pessoas usam e a grande maioria pelo menos já ouviu falar sobre essa maravilha do Google.

Como muitas empresas utilizam esta agenda, porque ela permite ter compartilhamento de compromissos, eventos e etc. Então, vou mostrar como atualizar sua agenda usando cURL.

Mas antes de começar, vamos precisar baixar duas classes e tratar o formulário para envio.

1º- Vamos baixar as classes:
As duas classes foram encontradas no site abaixo, muito bom por sinal:
2º- Vamos tratar o formulário de cadastro de compromissos:

Usando o jQuery Datepicker para ajudar na visualização do calendário.

Usar uma função em JavaScript para tratar o horário de forma correta.

3º- Criando o Formulário:

<form action="modulos/agenda/scripts/s_cadastrar.php" method="post"> <table border="0" cellspacing="0" cellpadding="0"> <tr> <td>Nome do Evento</td> <td><input type="text" name="agenda_evento"></td> </tr> <tr> <td>Descrição</td> <td><textarea name="agenda_descricao"></textarea></td> </tr> <tr> <td>Local</td> <td><input type="text" name="agenda_local"></td> </tr> <tr> <td>Data Inicial</td> <td><input type="text" name="agenda_d_inicial" class="campo_data"></td> </tr> <tr> <td>Data Final</td> <td><input type="text" name="agenda_d_final" class="campo_data"></td> </tr> <tr> <td>Horário Inicial</td> <td><input type="text" name="agenda_h_inicial" class="mask-hora" maxlength="5" onkeypress="MascaraHora(this);" /></td> </tr> <tr> <td>Horário Final</td> <td><input type="text" name="agenda_h_final" class="mask-hora" maxlength="5" onkeypress="MascaraHora(this);" /></td> </tr> <tr> <td></td> <td><input type="submit" value="Enviar" class="enviar"></td> </tr> </table> </form>


4º- Montando o HTML completo:

<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Agendda Google - Renan Martins Pimentel</title> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <!-- Date picker --> <link type="text/css" href="js/jquery_datepicker/core.css" rel="stylesheet" media="screen"> <link type="text/css" href="js/jquery_datepicker/datepicker.css" rel="stylesheet" media="screen"> <link type="text/css" href="js/jquery_datepicker/theme.css" rel="stylesheet" media="screen"> <script type="text/javascript" src="js/jquery_datepicker/datepicker.js"></script> <script type="text/javascript" src="js/jquery_datepicker/datepicker-pt-BR.js"></script> <script type="text/javascript"> //-- Função para exibir calendarios nos campos data jquery do botao de gerar relatorio --// $(function(){ $(".campo_data").datepicker($.datepicker.regional['pt-BR']); }); <!-- /Date picker --> /* Mascara para horario */ function MascaraHora(objeto){ if(objeto.value.length == 2) objeto.value = objeto.value + ':'; if(objeto.value.length == 4) objeto.value = objeto.value; } </script> </head> <body> <form action="s_cadastrar.php" method="post"> <table border="0" cellspacing="0" cellpadding="0"> <tr> <td>Nome do Evento</td> <td><input type="text" name="agenda_evento"></td> </tr> <tr> <td>Descrição</td> <td><textarea name="agenda_descricao"></textarea></td> </tr> <tr> <td>Local</td> <td><input type="text" name="agenda_local" /></td> </tr> <tr> <td>Data Inicial</td> <td><input type="text" name="agenda_d_inicial" /></td> </tr> <tr> <td>Data Final</td> <td><input type="text" name="agenda_d_final" /></td> </tr> <tr> <td>Horário Inicial</td> <td><input type="text" name="agenda_h_inicial" maxlength="5" onkeypress="MascaraHora(this);" /></td> </tr> <tr> <td>Horário Final</td> <td><input type="text" name="agenda_h_final" maxlength="5" onkeypress="MascaraHora(this);" /></td> </tr> <tr> <td></td> <td><input type="submit" value="Enviar" class="enviar"></td> </tr> </table> </form> </body> </html>


5º- Script para envio:

<?php include ('GoogleCalendarWrapper.php'); $gc = new GoogleCalendarWrapper("seuemail@gmail.com", "suasenha"); //$gc->feed_url = "http://www.google.com/calendar/feeds/untiuro1rs%40group.calendar.google.com/private-6a7151779f99b/basic"; //specify this, if you want to work with not-default calendar (check this: http://code.google.com/apis/gdata/calendar.html#get_feed) //Função para tratar data que vem com padrão PT-BR pelo jQuery function formatar_data_contrario($d) { $d1 = explode("/", $d); return $d1[2]."-".$d1[1]."-".$d1[0]; } // Receber os dados via POST $titulo = $_POST['agenda_evento']; $conteudo = $_POST['agenda_descricao']; $local = $_POST['agenda_local']; $dia_inicio = formatar_data_contrario($_POST['agenda_d_inicial']); $dia_fim = formatar_data_contrario($_POST['agenda_d_final']); $hora_inicio = $_POST['agenda_h_inicial'].":00"; $hora_fim = $_POST['agenda_h_final'].":00"; $s = array(); $s["title"] = "$titulo"; $s["content"] = "$conteudo"; $s["where"] = "$local"; $s["startDay"] = "$dia_inicio"; $s["startTime"] = "$hora_inicio"; $s["endDay"] = "$dia_fim"; $s["endTime"] = "$hora_fim"; if($gc->add_event($s)) echo "Enviado com sucesso!"; else echo "Não enviou!"; ?>


Lembrando um pouco de Lógica, que um evento não pode terminar antes da data de inicio, e o mesmo serve para o horário.

Em um outro tutorial eu explico como visualizar o Google Agenda dentro do seu sistema.

Para fazer download dos arquivos usados acima, clique aqui:
Abraços e até a próxima!

Outras dicas deste autor

Fullscreen com jQuery e CSS

Autenticação e criptografia de senhas usando PHP

Verificar se o CPF é válido

Upload de várias imagens com PHP e jQuery

Gerando QR Code com PHP

Leitura recomendada

Enviar aspas em PHP de maneira menos suja

Gerando Miniaturas de Imagens com PHP

Dicas de segurança em PHP

Gerando documentação de projetos PHP com o DocBlox

Escovando bits em PHP - operações bitwise sobre grupos e permissões

  

Comentários
[1] Comentário enviado por brasmid em 15/08/2014 - 22:18h

O link para download está com problema, este código citado é a versão mais atual?




http://www.brasmid.com.br



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts